package testes;
 
import logica.pessoa.Usuario;
import logica.util.Data;
import logica.util.Endereco;
import logica.util.TipoDeLogradouro;
import logica.util.UF;
 
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
 
import criptografia.Encriptador;
 
public class TestaUsuario {
 
    private Usuario usuario;
    private Encriptador encriptador;
     
    @Before public void inicializacao() throws Exception {
        /* String nome, String telefone,
         *  String email, Endereco endereco, String cpf,String rg,
         *  Data dataDeNascimento, String naturalidade,
         *  String login,String senha,String matricula)*/
        Endereco endereco = new Endereco(UF.AC,"cidade", "bairro", TipoDeLogradouro.Favela,"logradoro",666,"58000000","sem observacao");
        usuario = new Usuario("Jose Arthur","(87) 38471149","arthur.programando@gmail.com",
                endereco ,"23456789121","2345678",new Data(),"br","art_login","123456");
        encriptador = new Encriptador();
    }
 
     
    @Test public void testLogin() throws Exception{
        try{
                     
            Assert.assertEquals("art_login", usuario.getLogin());
            usuario.setLogin("as");
            System.out.println(usuario.getSenha());
            Assert.fail();
        }
        catch (Exception e) {
            Assert.assertEquals("login deve ter mais de 5 caracteres", e.getMessage());
             
        }
         
                 
        try{
            usuario.setLogin(null);
            Assert.fail();
        }
        catch (Exception e) {
            Assert.assertEquals("login deve ter mais de 5 caracteres", e.getMessage());
             
        }
         
        usuario.setLogin("arthurFrango");
        Assert.assertEquals("arthurFrango", usuario.getLogin());
                             
    }
     
     
    @Test public void testSenha() throws Exception{
        try{
            usuario.setSenha(null);
             
            Assert.fail();
        }
        catch (Exception e) {
            Assert.assertEquals("senha deve ter mais de 5 caracteres", e.getMessage());
        }
     
     
         
        try{
            usuario.setSenha("peq");
             
            Assert.fail();
        }
        catch (Exception e) {
            Assert.assertEquals("senha deve ter mais de 5 caracteres", e.getMessage());
        }
         
        usuario.setSenha("s3nh4s");
        Assert.assertEquals(encriptador.geraHashParaSenha("s3nh4s"), usuario.getSenha());
    }
} 